/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package bgu.sonar.util.ui.mon;

import bgu.sonar.util.ui.visual.HasVisualData;
import java.io.InputStream;

/**
 *
 * @author bennyl
 */
public interface Monitor extends HasVisualData {

    Monitor sub(double portion);

    InputStream getInputStream();

    public String readAvailableInput();

    double getProgress();

    /**
     * atomically increase progress
     *
     * @param amount
     */
    void incProgress(double amount);

    void setProgress(double progress);

    void write(String what);

    void close();

    boolean isClosed();

    public void writeln(String what);

    public void writeln(String what, double processIncrement);
}
